package zkp

import (
	"math/big"

	"github.com/consensys/gnark-crypto/hash"
)

// MiMC 实现 MiMC 哈希函数
func MiMC(secret *big.Int, data []byte) *big.Int {
	// 使用 BN254 曲线的 MiMC 哈希
	h := hash.MIMC_BN254.New()

	h.Write(data)
	result := h.Sum(nil)

	return new(big.Int).SetBytes(result)
}

// MiMCString 计算字符串的 MiMC 哈希
func MiMCString(secret *big.Int, input string) *big.Int {
	return MiMC(secret, []byte(input))
}
